diff --git a/system/database/DB_driver.php b/system/database/DB_driver.php
index 1450a06..b937ffd 100644
--- a/system/database/DB_driver.php
+++ b/system/database/DB_driver.php
@@ -911,11 +911,10 @@
 		
 		foreach($data as $key => $val)
 		{
-			$fields[] = $key;
+			$fields[] = $this->_escape_column($key);
 			$values[] = $this->escape($val);
 		}
 				
-		
 		return $this->_insert($this->prep_tablename($table), $fields, $values);
 	}	
 	
@@ -940,7 +939,7 @@
 		$fields = array();
 		foreach($data as $key => $val)
 		{
-			$fields[$key] = $this->escape($val);
+			$fields[$this->_escape_column($key)] = $this->escape($val);
 		}
 
 		if ( ! is_array($where))
diff --git a/system/database/drivers/mssql/mssql_driver.php b/system/database/drivers/mssql/mssql_driver.php
index 5ac90b4..9a912a3 100644
--- a/system/database/drivers/mssql/mssql_driver.php
+++ b/system/database/drivers/mssql/mssql_driver.php
@@ -390,7 +390,24 @@
 		// Are error numbers supported?
 		return '';
 	}
-	
+
+	// --------------------------------------------------------------------
+
+	/**
+	 * Escape Column Name
+	 *
+	 * This function adds backticks around supplied column name
+	 *
+	 * @access	private
+	 * @param	string	the column name
+	 * @return	string
+	 */
+	function _escape_column($column)
+	{
+		// Not necessary with MS SQL so we simply return the value
+		return $column;
+	}
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -405,15 +422,7 @@
 	 */
 	function _escape_table($table)
 	{
-		// I don't believe this is necessary with MS SQL.  Not sure, though. - Rick
-	
-		/*
-		if (strpos($table, '.') !== FALSE)
-		{
-			$table = '"' . str_replace('.', '"."', $table) . '"';
-		}
-		*/
-		
+		// Not necessary with MS SQL so we simply return the value
 		return $table;
 	}	
 	
diff --git a/system/database/drivers/mysql/mysql_driver.php b/system/database/drivers/mysql/mysql_driver.php
index 9d9b651..de372e6 100644
--- a/system/database/drivers/mysql/mysql_driver.php
+++ b/system/database/drivers/mysql/mysql_driver.php
@@ -398,6 +398,22 @@
 	{
 		return mysql_errno($this->conn_id);
 	}
+
+	// --------------------------------------------------------------------
+
+	/**
+	 * Escape Column Name
+	 *
+	 * This function adds backticks around supplied column name
+	 *
+	 * @access	private
+	 * @param	string	the column name
+	 * @return	string
+	 */
+	function _escape_column($column)
+	{
+		return '`' .$column. '`';
+	}
 	
 	// --------------------------------------------------------------------
 
diff --git a/system/database/drivers/mysqli/mysqli_driver.php b/system/database/drivers/mysqli/mysqli_driver.php
index cd683df..35a7fc0 100644
--- a/system/database/drivers/mysqli/mysqli_driver.php
+++ b/system/database/drivers/mysqli/mysqli_driver.php
@@ -394,6 +394,22 @@
 	{
 		return mysqli_errno($this->conn_id);
 	}
+
+	// --------------------------------------------------------------------
+
+	/**
+	 * Escape Column Name
+	 *
+	 * This function adds backticks around supplied column name
+	 *
+	 * @access	private
+	 * @param	string	the column name
+	 * @return	string
+	 */
+	function _escape_column($column)
+	{
+		return '`' .$column. '`';
+	}
 	
 	// --------------------------------------------------------------------
 
diff --git a/system/database/drivers/oci8/oci8_driver.php b/system/database/drivers/oci8/oci8_driver.php
index 765c3f6..b45b003 100644
--- a/system/database/drivers/oci8/oci8_driver.php
+++ b/system/database/drivers/oci8/oci8_driver.php
@@ -506,6 +506,23 @@
 		$error = ocierror($this->conn_id);
 		return $error['code'];
 	}
+	
+	// --------------------------------------------------------------------
+
+	/**
+	 * Escape Column Name
+	 *
+	 * This function adds backticks around supplied column name
+	 *
+	 * @access	private
+	 * @param	string	the column name
+	 * @return	string
+	 */
+	function _escape_column($column)
+	{
+		// Probably not necessary with Oracle so we simply return the value
+		return $column;
+	}
 
 	// --------------------------------------------------------------------
 
diff --git a/system/database/drivers/odbc/odbc_driver.php b/system/database/drivers/odbc/odbc_driver.php
index f89000d..ed8f81c 100644
--- a/system/database/drivers/odbc/odbc_driver.php
+++ b/system/database/drivers/odbc/odbc_driver.php
@@ -371,7 +371,23 @@
 	{
 		return odbc_error($this->conn_id);
 	}
-	
+	// --------------------------------------------------------------------
+
+	/**
+	 * Escape Column Name
+	 *
+	 * This function adds backticks around supplied column name
+	 *
+	 * @access	private
+	 * @param	string	the column name
+	 * @return	string
+	 */
+	function _escape_column($column)
+	{
+		// Not necessary with ODBC so we simply return the value
+		return $column;
+	}
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -386,9 +402,9 @@
 	 */
 	function _escape_table($table)
 	{
-		// used to add backticks in other db drivers		
+		// Not necessary with ODBC so we simply return the value
 		return $table;
-	}
+	}	
 		
 	// --------------------------------------------------------------------
 
diff --git a/system/database/drivers/postgre/postgre_driver.php b/system/database/drivers/postgre/postgre_driver.php
index 7574ded..3d006d3 100644
--- a/system/database/drivers/postgre/postgre_driver.php
+++ b/system/database/drivers/postgre/postgre_driver.php
@@ -391,7 +391,23 @@
 	{
 		return '';
 	}
-	
+	// --------------------------------------------------------------------
+
+	/**
+	 * Escape Column Name
+	 *
+	 * This function adds backticks around supplied column name
+	 *
+	 * @access	private
+	 * @param	string	the column name
+	 * @return	string
+	 */
+	function _escape_column($column)
+	{
+		// Probably not necessary with Postgres so we simply return the value
+		return $column;
+	}
+
 	// --------------------------------------------------------------------
 
 	/**
diff --git a/system/database/drivers/sqlite/sqlite_driver.php b/system/database/drivers/sqlite/sqlite_driver.php
index 5cac04d..46e0fae 100644
--- a/system/database/drivers/sqlite/sqlite_driver.php
+++ b/system/database/drivers/sqlite/sqlite_driver.php
@@ -387,7 +387,24 @@
 	{
 		return sqlite_last_error($this->conn_id);
 	}
-		
+
+	// --------------------------------------------------------------------
+
+	/**
+	 * Escape Column Name
+	 *
+	 * This function adds backticks around supplied column name
+	 *
+	 * @access	private
+	 * @param	string	the column name
+	 * @return	string
+	 */
+	function _escape_column($column)
+	{
+		// Not necessary with SQLite so we simply return the value
+		return $column;
+	}
+			
 	// --------------------------------------------------------------------
 
 	/**
@@ -402,7 +419,6 @@
 	 */
 	function _escape_table($table)
 	{
-
 		// other database drivers use this to add backticks, hence this
 		// function is simply going to return the tablename for sqlite		
 		return $table;
